Arduino-তে analogRead()
এবং analogWrite()
ফাংশন দুটি গুরুত্বপূর্ণ ফাংশন যা বিভিন্ন প্রকল্পে সেন্সর থেকে ডেটা পড়া এবং আউটপুট হিসেবে এনালগ সিগন্যাল প্রেরণে ব্যবহৃত হয়। এগুলো বোর্ডের এনালগ পিনের মাধ্যমে কাজ করে।
analogRead()
ফাংশন ব্যবহার করে Arduino-এর এনালগ পিন থেকে ইনপুট পড়া যায়। এটি সাধারণত সেন্সর ডেটা পড়ার জন্য ব্যবহৃত হয়, যেমন তাপমাত্রা সেন্সর, লাইট সেন্সর ইত্যাদি।
গঠন:
int sensorValue = analogRead(pin);
pin
: যে এনালগ পিন থেকে ডেটা পড়তে হবে, যেমন A0, A1 ইত্যাদি।analogRead()
১০-বিটের মান প্রদান করে, যা ০ থেকে ১০২৩ পর্যন্ত হতে পারে। ০ মানে ০ ভোল্ট এবং ১০২৩ মানে রেফারেন্স ভোল্টেজ (সাধারণত ৫V)।উদাহরণ:
void setup() {
Serial.begin(9600); // সিরিয়াল মনিটর শুরু
}
void loop() {
int sensorValue = analogRead(A0); // A0 পিন থেকে ডেটা পড়া
Serial.println(sensorValue); // সেন্সর মান সিরিয়াল মনিটরে প্রিন্ট করা
delay(500); // ৫০০ মিলিসেকেন্ড অপেক্ষা
}
analogWrite()
ফাংশন PWM (Pulse Width Modulation) সংকেত তৈরি করতে ব্যবহৃত হয়। এটি এনালগ আউটপুট তৈরি করার জন্য ব্যবহৃত হয়, যেমন LED-এর উজ্জ্বলতা নিয়ন্ত্রণ বা মোটরের গতি নিয়ন্ত্রণ।
গঠন:
analogWrite(pin, value);
pin
: যে পিনে PWM সংকেত পাঠানো হবে। শুধুমাত্র PWM পিনগুলো (যেমন Arduino Uno-তে 3, 5, 6, 9, 10, 11) ব্যবহার করা যায়।value
: ৮-বিটের মান, যা ০ থেকে ২৫৫ পর্যন্ত হতে পারে। ০ মানে ০% ডিউটি সাইকেল (LOW), এবং ২৫৫ মানে ১০০% ডিউটি সাইকেল (HIGH)।উদাহরণ:
void setup() {
pinMode(9, OUTPUT); // পিন 9 আউটপুট হিসেবে কনফিগার করা
}
void loop() {
analogWrite(9, 128); // পিন 9 এ ৫০% ডিউটি সাইকেল (LED হাফ ব্রাইটনেসে জ্বলবে)
delay(1000); // ১ সেকেন্ড অপেক্ষা
analogWrite(9, 255); // পিন 9 এ ১০০% ডিউটি সাইকেল (LED সম্পূর্ণ উজ্জ্বল)
delay(1000); // ১ সেকেন্ড অপেক্ষা
}
void setup() {
pinMode(9, OUTPUT); // LED পিন
Serial.begin(9600); // সিরিয়াল মনিটর শুরু
}
void loop() {
int sensorValue = analogRead(A0); // LDR সেন্সর থেকে ডেটা পড়া
int brightness = map(sensorValue, 0, 1023, 0, 255); // সেন্সর মান ০-২৫৫ এ ম্যাপ করা
analogWrite(9, brightness); // LED এর উজ্জ্বলতা নিয়ন্ত্রণ
Serial.println(brightness); // উজ্জ্বলতা মান সিরিয়াল মনিটরে প্রিন্ট করা
delay(100); // সামান্য বিলম্ব
}
ব্যাখ্যা:
map()
ফাংশন: সেন্সর মানকে ০ থেকে ২৫৫ এর মধ্যে ম্যাপ করার জন্য ব্যবহৃত হয়, যাতে তা LED এর উজ্জ্বলতা নিয়ন্ত্রণে ব্যবহার করা যায়।analogWrite()
আসলে একটি PWM সংকেত প্রেরণ করে, যা আউটপুট ভোল্টেজকে বিভিন্ন মাত্রায় পরিবর্তন করে।analogRead()
শুধুমাত্র এনালগ পিন (A0, A1, ইত্যাদি) থেকে ইনপুট পড়তে পারে। অন্যদিকে, analogWrite()
শুধুমাত্র PWM পিনে ব্যবহার করা যায়।analogRead()
এবং analogWrite()
ফাংশনগুলো Arduino-তে সেন্সর ডেটা পড়া এবং আউটপুট নিয়ন্ত্রণের জন্য অত্যন্ত গুরুত্বপূর্ণ। এগুলো বিভিন্ন প্রজেক্টে LED, মোটর, এবং অন্যান্য ডিভাইসের কার্যক্রম পরিচালনা করতে ব্যবহৃত হয়।
common.read_more